#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/videodev2.h>
#include <string.h>
#include <sys/mman.h>
#include <assert.h>
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>

using namespace std;
using namespace cv;

/**
 * 在图像高斯平滑中，对图像进行平均时，不同位置的像素被赋予了不同的权重
 * 高斯滤波让临近的像素具有更高的重要度，对周围像素计算加权平均值，较近的像素具有较大的权重值
 *
 */
int main() {
	Mat img = imread("in.jpg", IMREAD_UNCHANGED);
	Mat gray;
	if (img.empty()) {
		printf("No image data \n");
		return -1;
	}
	GaussianBlur(img, gray, Size(17, 17), 0);
	imwrite("out.jpg", gray);
	return 0;
}
